<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // Number()   String()   Boolean()

        // 1 其他的数据类型转字符串  String()   -> 最终的结果都是原来的值加了个引号
        //      数字可以转字符串
        //      布尔值也可以转字符串
        //      undefined 也可以转字符串
        //      null 也可以转字符串


        // 2 其他的数据类型转布尔值  Boolean()   0  NaN  ''  undefined  null 是false   其他都是true
        //      数字可以转布尔值   0 -> false   NaN -> false   其他都是true
        //      字符串也可以转布尔值  '' -> false  其他都是true 
        //      undefined 也可以转布尔值  false
        //      null 也可以转布尔值  false


        // 3 其他类型转数字  Number()
        //    布尔值转数字  true > 1   false -> 0
        //    字符串转数字  只有纯数字字符串可以转数字   '' -> 0   '  ' -> 0   其他的都是NaN
        //    null转数字   -> 0
        //    undefined转数字   -> NaN


        // NaN   not a number 非数字的集合



        // 规定   null == undefined     不全等

        // null和undefined的区别
        //    null == undefined  不全等
        //    null侧重于空值    undefined是已经声明没有赋值的状态



        var a = 1;  // '1'
        console.log(String(a));
        var b = true;  // 'true'
        console.log(String(b));
        var c;  // 'undefined'
        console.log(String(c));
        var d = null;
        console.log(String(d));

        console.log(Boolean(113));

    </script>

</body>

</html>